package com.kaoshi.myweb.web.web.argument.annotation;

/**
 * Created by ZHOUTIEQIANG053 on 2016-12-09.
 */

import java.lang.annotation.*;

/**
 * <p>先从参数找，参数找不到从方法上找，否则使用默认的查询参数</p>
 * <pre>
 *     格式如下：
 *     value = {"age_lt=123", "name_like=abc", "id_in=1,2,3,4"}
 * </pre>
 *
 * @author Zhang Kaitao
 */
@Target({ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SearchConditionDefaults {

	/**
	 * 默认查询参数字符串
	 *
	 * @return
	 */
	String[] value() default {};

	/**
	 * 是否合并默认的与自定义的
	 *
	 * @return
	 */
	boolean merge() default false;

	/**
	 * 是否需要分页
	 *
	 * @return
	 */
	boolean needPage() default true;

	/**
	 * 是否需要排序
	 *
	 * @return
	 */
	boolean needSort() default true;


	/**
	 * 默认的排序 格式为{"a=desc, a.b=desc"}
	 */
	String[] sort() default {};


	/**
	 * The default-size the injected {@link org.springframework.data.domain.Pageable} should get if no corresponding
	 * parameter defined in request (default is 10).
	 */
	int pageSize() default 10;

	/**
	 * The default-pagenumber the injected {@link org.synyx.hades.domain.Pageable} should get if no corresponding
	 * parameter defined in request (default is 0).
	 */
	int pageNumber() default 0;
}
